package com.dyz.wsw.security.repository;

import com.dyz.wsw.common.consts.cache.PassportCacheConst;
import com.dyz.wsw.common.pojo.cache.UserCachePO;
import reactor.core.publisher.Mono;

/**
 * 处理用户缓存数据的存储接口
 * @author dyz
 * @date 2025/2/9 19:07
 */
public interface WswSecurityCacheRepository extends PassportCacheConst {


    /**
     * 从缓存中删除用户登录信息
     * @param userId 用户id
     * @return 删除结果,结果为1正确删除
     */
    Mono<Long> deleteUserState(Long userId);


    /**
     * 从缓存中读取用户登录信息
     * @param userId 用户id
     * @return 匹配的用户信息
     */
    Mono<UserCachePO> getUserState(Long userId);


    /**
     * 续期用户登录信息
     * @param userId 用户id
     */
    Mono<Boolean> renewal(Long userId);
}
